{{^is_riverpod}}
import 'package:injectable/injectable.dart';
{{/is_riverpod}}
import 'package:{{project_name.snakeCase()}}/core/contracts/app_result.dart';
import 'package:{{project_name.snakeCase()}}/core/error/error_handler.dart';
import 'package:{{project_name.snakeCase()}}/features/{{feature_name.snakeCase()}}/domain/entities/{{feature_name.snakeCase()}}_entity.dart';
import 'package:{{project_name.snakeCase()}}/features/{{feature_name.snakeCase()}}/domain/repositories/{{feature_name.snakeCase()}}_repository.dart';

{{^is_riverpod}}
@LazySingleton(as: {{feature_name.pascalCase()}}Repository)
{{/is_riverpod}}
class {{feature_name.pascalCase()}}RepositoryImpl implements {{feature_name.pascalCase()}}Repository {
  @override
  Future<AppResult<List<{{feature_name.pascalCase()}}Entity>>> getAll() async {
    try {
      // TODO(api): Replace with actual data source call.
      await Future<void>.delayed(const Duration(milliseconds: 300));
      return success(const <{{feature_name.pascalCase()}}Entity>[]);
    } on Object catch (error) {
      return failure(ErrorHandler.handle(error));
    }
  }
}
